Skip to content

WallabyDesigns/gitmanager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

131 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cover

Git Web Manager

Git Web Manager (GWM) is a self-hosted Laravel + Livewire application for deploying and monitoring Git-backed websites from a single dashboard. It handles deploys, rollbacks, health checks, preview builds by commit, dependency actions, and a security overview for Dependabot alerts.

demo

Git Web Manager is not affiliated with, endorsed by, or sponsored by Git or GitHub.

Support:

This is a completely free service that I work hard to maintain. Show your support if you found this useful!

wallaby

Documentation Site (GitHub Pages)

This repo ships a static docs site in docs/.

You can read it directly here: documentation.

documentation

Why Use It

  • Replace manual git pull + build + rollback steps with one UI.
  • Get per-project health checks and recent activity logs.
  • Spin up preview builds for any commit.
  • Keep dependencies and security alerts visible.

Features

  • Authenticated dashboard with project list and detail pages.
  • Deploys, force deploys, and rollbacks.
  • Auto-deploy via scheduler or GitHub webhooks.
  • Health checks with live status.
  • Preview builds by commit.
  • Dependency actions (composer/npm) with logs.
  • Security tab with Dependabot alerts and auto-merge.
  • Self-update flow for the app itself.
  • Rule-based workflows for deploys, rollbacks, dependency actions (email + webhooks).
  • Deploy queue for serializing deployments.
  • User management tab for creating accounts and resetting passwords.
  • Project-type wizard (Laravel, Node, Static, Custom) with relevant defaults.

Quick Start

  1. Copy .env.example to .env and configure required values.
  2. Install dependencies and build assets.
  3. Run migrations and start the app.
composer install
php artisan migrate
npm install
npm run build

Requirements

  • PHP 8.2+ with required extensions (mbstring, curl, etc).
  • Composer 2.
  • Node.js 18+ (or 20/22) for Vite builds.
  • Git CLI available to the web user.
  • Queue worker for webhook deploys.
  • Scheduler for auto-deploy and security sync.

Permissions (Important)

Git operations are performed by the web server user. For reliable updates, the PHP-FPM user should match the filesystem owner of the app and project directories. If they differ, git may fail to write to .git/objects or .git/index.

Configuration Highlights

Set these in .env as needed:

  • GITHUB_TOKEN for private repos + Dependabot actions.
  • GITHUB_WEBHOOK_SECRET for webhook verification.
  • GWM_GIT_BINARY, GWM_COMPOSER_BINARY, GWM_NPM_BINARY for custom CLI paths.
  • GWM_PHP_BINARY / GWM_PHP_PATH for PHP CLI selection.
  • GWM_PROCESS_PATH to prepend PATH (Node, PHP, etc).
  • GWM_SELF_UPDATE_ENABLED to enable self updates.
  • GWM_SELF_UPDATE_EXCLUDE_PATHS to skip paths (default: docs).
  • GWM_PREVIEW_PATH and GWM_PREVIEW_BASE_URL for preview builds.
  • GWM_DEPLOY_QUEUE_ENABLED to enable queued deployments.

Legacy GPM_* keys are still supported for backward compatibility.

Scheduler & Queue

Start a worker for webhook deployments:

php artisan queue:work

Ensure the scheduler runs (crontab entry):

* * * * * cd /path/to/app && /path/to/php artisan scheduler:run >/dev/null 2>&1

Scheduled commands include:

  • projects:auto-deploy (every 5 minutes)
  • deployments:process-queue (every minute)
  • security:sync (hourly)
  • dependabot:auto-merge (hourly)
  • gitmanager:self-update (daily at 02:30 if enabled)

GitHub Webhooks

Set GitHub to POST to:

/webhooks/github

Use the same GITHUB_WEBHOOK_SECRET in GitHub and .env.

App Updates

The app can update itself from its repo. By default it preserves local changes when detected. If an update fails, you can run a Force Update to hard-reset to the remote branch while preserving .env, storage/, .htaccess, and GWM_SELF_UPDATE_EXCLUDE_PATHS. If the app exposes the custom app:clear-cache command, it runs automatically after updates. Force Update does not clear app data (logs, storage files, and other protected paths are retained).

CLI:

php artisan gitmanager:self-update
php artisan gitmanager:self-update --force

To publish on GitHub Pages:

  1. Go to repo settings → Pages.
  2. Select Deploy from a branch.
  3. Choose branch main and folder /docs.

User Management & First Login

  • Registration is open only when there are no users (first admin setup).
  • After the first account exists, create users from the Users page in the main navigation.
  • Users created by admins can be forced to change their password on first login.
  • Use “Send reset link” for email-driven password recovery.

Contributing

Issues and pull requests are welcome. Please include clear reproduction steps and environment details for bugs.

License

MIT License. See LICENSE for details.

About

Git Web Manager (GWM) is a self-hosted dashboard for deploying Git repositories to local and remote paths. It manages rollbacks, health checks, preview builds, and automated dependency updates.

Topics

Resources

License

Stars

Watchers

Forks

Languages